package com.ask.waitAndNotify;

public class Producer extends Thread {
    @Override
    public void run() {
        while (true){
            synchronized (Desk.lock){
                if (Desk.count == 0) // 生产者已经吃不下了
                    break;
                else{
                    // 桌子上是否有食物
                    if(Desk.foodFlag == 1){ // 有食物则等待，直到消费者进行将其唤醒
                        try {
                            Desk.lock.wait();
                        } catch (InterruptedException e) {
                            throw new RuntimeException(e);
                        }
                    }
                    else { // 缓冲区没有食物
                        System.out.println("生产者生产一份食物！！！");
                        Desk.foodFlag = 1;
                        Desk.lock.notifyAll(); // 唤醒消费者，你可以吃了！
                    }
                }

            }
        }
    }
}
